[速報]Amazon Linux 2022がやってきた!(プレビュー版)
みなさんこんにちは、杉金です。
Amazon Linux 2の後継にあたるAmazon Linux 2022のプレビュー版がきましたね!ついに!!
公式リンク集
Amazon Linux 2022とは
Amazon Linux 2022(AL2022)はAWSが独自に提供するLinuxサーバOSです。Amazon Linux 2の後継として今回発表されました。AL2022以降、Amazon Linuxの新しいメジャーバージョンは2年ごとにリリースされ、四半期ごとのマイナーリリースが含まれ、5年間の長期サポートが付属するようです。特徴として、デフォルトでパッケージリポジトリが特定のバージョンにロックでき、継続的デプロイのセットアップを容易にします。また、デフォルトでSELinuxが有効になっています。AL2022は、AWS公式のFAQで次のように紹介されています。
Q: What is Amazon Linux 2022?
A: Amazon Linux 2022 (AL2022) is an Amazon distribution of the Linux operating system. It is a general-purpose rpm-based distribution and a successor to Amazon Linux 2. AL2022 simplifies planning for operating system upgrades. Starting with AL2022, a new major version of Amazon Linux releases every two years, includes minor quarterly releases, and comes with five years of long-term support. By default, AL2022 locks to a specific version of the package repository to make it easy to integrate into a continuous deployment setup. Finally, AL2022 comes with SELinux enabled in enforcing mode by default.
Amazon Linux 2022の利点、注目機能
Amazon Linux 2022の利点、注目機能をまとめました。
- AWS向けに最適化
- Amazon EC2向けに最適化されており、最新のAWS機能と統合している。
- オペレーティングシステムのライフサイクルの計画と管理が簡単
- Fedoraに基づいて、AL2022は頻繁で柔軟な四半期ごとのアップデートを提供する。
- Amazon Linuxパッケージリポジトリのバージョンをロックして更新を制御できる。
- メジャーバージョンアップは2年毎に提供され、各バージョンは5年間の長期サポートを受けられる。
- サポートフェーズ中は定期的なセキュリティ更新、バグ修正が受けられる。
- 高いセキュリティ標準
- デフォルトでSELinux有効化
- 起動時に事前構成済みのセキュリティポリシーを適用できる。
- カーネルロックダウンやセキュアブート関連の機能強化。
- カーネルライブパッチ
- 再起動やダウンタイム無しでパッチ適用可能:プレビュー版は利用不可
詳細はGitHubのページをご確認ください。
サポートするCPUアーキテクチャ
以下のアーキテクチャに対応しています。
- x86_64
- aarch64
とりあえず使ってみる!
EC2インスタンス起動からコミュニティAMIを選び、「al2022」と入力するとAMIが出てきます。
インスタンス詳細設定を進めている時に気づいたのですが、Amazon Linux 2のEBSタイプはデフォルトgp2なのですがAmazon Linux 2022はgp3になってますね。
その後も進めていき...起動しましたあああ!!!プレビュー版と表示されています。
__| __|_ ) _| ( / Amazon Linux 2022 AMI ___|\___|___| Preview http://aws.amazon.com/linux/amazon-linux-2022 Last login: Mon Nov 22 23:51:11 2021 from 103.5.140.162 [ec2-user@ip-10-0-0-26 ~]$ cat /etc/system-release Amazon Linux release 2022 (Amazon Linux)
Kernelのバージョンは5.10.75になっています。Amazon Linux 2でも5.10は提供されているため、後ほどAmazon Linux 2とAmazon Linux 2022を比較してみましょう。
[ec2-user@ip-10-0-0-26 ~]$ uname -a Linux ip-10-0-0-26.ap-northeast-1.compute.internal 5.10.75-82.359.amzn2022.x86_64 #1 SMP Mon Nov 15 18:04:59 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
登録されているサービスのリストです。
[ec2-user@ip-10-0-0-26 ~]$ systemctl list-unit-files --type=service UNIT FILE STATE VENDOR PRESET arp-ethers.service disabled disabled atd.service enabled enabled auditd.service enabled enabled auth-rpcgss-module.service static - autovt@.service alias - blk-availability.service disabled disabled chrony-wait.service disabled disabled chronyd.service enabled enabled cloud-config.service enabled disabled cloud-final.service enabled disabled cloud-init-local.service enabled disabled cloud-init.service enabled disabled console-getty.service disabled disabled container-getty@.service static - cpupower.service disabled disabled dbus-broker.service enabled enabled dbus-org.freedesktop.home1.service alias - dbus-org.freedesktop.hostname1.service alias - dbus-org.freedesktop.locale1.service alias - dbus-org.freedesktop.login1.service alias - dbus-org.freedesktop.network1.service alias - dbus-org.freedesktop.oom1.service alias - dbus-org.freedesktop.portable1.service alias - dbus-org.freedesktop.resolve1.service alias - dbus-org.freedesktop.timedate1.service alias - dbus.service alias - debug-shell.service disabled disabled dm-event.service static - dmraid-activation.service disabled enabled dnf-makecache.service static - dracut-cmdline.service static - dracut-initqueue.service static - dracut-mount.service static - dracut-pre-mount.service static - dracut-pre-pivot.service static - dracut-pre-trigger.service static - dracut-pre-udev.service static - dracut-shutdown.service static - emergency.service static - fstrim.service static - getty@.service enabled enabled grub-boot-indeterminate.service static - grub2-systemd-integration.service static - gssproxy.service disabled disabled import-state.service enabled enabled initrd-cleanup.service static - initrd-parse-etc.service static - initrd-switch-root.service static - initrd-udevadm-cleanup-db.service static - irqbalance.service enabled enabled kmod-static-nodes.service static - ldconfig.service static - libstoragemgmt.service enabled enabled loadmodules.service disabled disabled logrotate.service static - lvm2-lvmpolld.service static - lvm2-monitor.service enabled enabled lvm2-pvscan@.service static - man-db-cache-update.service static - man-db-restart-cache-update.service disabled disabled mdadm-grow-continue@.service static - mdadm-last-resort@.service static - mdmon@.service static - mdmonitor.service enabled enabled modprobe@.service static - nfs-blkmap.service disabled disabled nfs-convert.service enabled disabled nfs-idmapd.service static - nfs-mountd.service static - nfs-server.service disabled disabled nfs-utils.service static - nfsdcld.service static - nis-domainname.service disabled disabled pam_namespace.service static - policy-routes@.service static - quotaon.service static - raid-check.service static - rc-local.service static - rdisc.service disabled disabled refresh-policy-routes@.service static - rescue.service static - rngd.service enabled enabled rpc-gssd.service static - rpc-statd-notify.service static - rpc-statd.service static - rpcbind.service disabled disabled rpmdb-rebuild.service enabled enabled rsyslog.service enabled enabled selinux-autorelabel-mark.service enabled enabled selinux-autorelabel.service static - selinux-check-proper-disable.service disabled disabled serial-getty@.service indirect disabled sshd-keygen@.service disabled disabled sshd.service enabled enabled sshd@.service static - sssd-autofs.service indirect disabled sssd-kcm.service indirect disabled sssd-nss.service indirect disabled sssd-pac.service indirect disabled sssd-pam.service indirect disabled sssd-ssh.service indirect disabled sssd-sudo.service indirect disabled sssd.service enabled enabled sysstat-collect.service static - sysstat-summary.service static - sysstat.service enabled enabled system-update-cleanup.service static - systemd-ask-password-console.service static - systemd-ask-password-wall.service static - systemd-backlight@.service static - systemd-binfmt.service static - systemd-bless-boot.service static - systemd-boot-check-no-failures.service disabled disabled systemd-boot-system-token.service static - systemd-coredump@.service static - systemd-exit.service static - systemd-firstboot.service static - systemd-fsck-root.service enabled-runtime disabled systemd-fsck@.service static - systemd-halt.service static - systemd-hibernate-resume@.service static - systemd-hibernate.service static - systemd-homed-activate.service enabled disabled systemd-homed.service enabled enabled systemd-hostnamed.service static - systemd-hwdb-update.service static - systemd-hybrid-sleep.service static - systemd-initctl.service static - systemd-journal-catalog-update.service static - systemd-journal-flush.service static - systemd-journald.service static - systemd-journald@.service static - systemd-kexec.service static - systemd-localed.service static - systemd-logind.service static - systemd-machine-id-commit.service static - systemd-modules-load.service static - systemd-network-generator.service disabled disabled systemd-networkd-wait-online.service enabled disabled systemd-networkd.service enabled disabled systemd-oomd.service disabled disabled systemd-portabled.service static - systemd-poweroff.service static - systemd-pstore.service disabled enabled systemd-quotacheck.service static - systemd-random-seed.service static - systemd-reboot.service static - systemd-remount-fs.service enabled-runtime disabled systemd-repart.service static - systemd-resolved.service enabled enabled systemd-rfkill.service static - systemd-suspend-then-hibernate.service static - systemd-suspend.service static - systemd-sysctl.service static - systemd-sysext.service disabled disabled systemd-sysusers.service static - systemd-time-wait-sync.service disabled disabled systemd-timedated.service static - systemd-timesyncd.service disabled disabled systemd-tmpfiles-clean.service static - systemd-tmpfiles-setup-dev.service static - systemd-tmpfiles-setup.service static - systemd-udev-settle.service static - systemd-udev-trigger.service static - systemd-udevd.service static - systemd-update-done.service static - systemd-update-utmp-runlevel.service static - systemd-update-utmp.service static - systemd-user-sessions.service static - systemd-userdbd.service indirect disabled systemd-vconsole-setup.service static - systemd-volatile-root.service static - update-motd.service enabled enabled user-runtime-dir@.service static - user@.service static - 175 unit files listed.
Amazon Linux 2と見比べ
Amazon Linux 2のカーネルバージョン5.10を起動して比較してみましょう。
Amazon Linux 2(5.10)のカーネルバージョン
[ec2-user@ip-10-0-0-10 ~]$ uname -a Linux ip-10-0-0-8.ap-northeast-1.compute.internal 5.10.75-79.358.amzn2.x86_64 #1 SMP Thu Nov 4 21:08:30 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
SELinuxの比較
アナウンスにある通りSELinuxが有効になっています。
Amazon Linux 2022
[ec2-user@ip-10-0-0-26 ~]$ getenforce Enforcing
Amazon Linux 2
[ec2-user@ip-10-0-0-10 ~]$ getenforce Disabled
セキュリティポリシーの比較
こちらもアナウンスにある通りDEFAULTに設定されています。Amazon Linux 2には無いものです。
Amazon Linux 2022
[ec2-user@ip-10-0-0-26 ~]$ update-crypto-policies --show DEFAULT
Amazon Linux 2
[ec2-user@ip-10-0-0-10 ~]$ update-crypto-policies --show -bash: update-crypto-policies: コマンドが見つかりません
セキュリティポリシーの種類と説明については、以下のRHEL8公式ページが分かりやすいです。
SSMエージェントの有無
Amazon Linux 2022
デフォルト未導入のようです。GitHubのissueにリクエストが上がっていますのでいずれ導入されると思われます。
Amazon Linux 2
Amazon Linux 2の場合はSSMエージェントはインストール済みです。
[ec2-user@ip-10-0-0-10 ~]$ sudo systemctl -l | grep ssm amazon-ssm-agent.service loaded active running amazon-ssm-agent
パッケージ管理
Amazon Linux 2022ではdnfでパッケージ管理ができるようになりました。amazon-linux-extras
は使えなくなっています
Amazon Linux 2022
[ec2-user@ip-10-0-0-26 ~]$ sudo amazon-linux-extras list sudo: amazon-linux-extras: コマンドが見つかりません
Amazon Linux 2でnginxを導入する時はamazon-linux-extras
を利用していましたが、Amazon Linux 2022はdnfで検索すると出てきます。
[ec2-user@ip-10-0-0-26 ~]$ sudo dnf list | grep nginx.x86_64 nginx.x86_64 1:1.20.1-8.amzn2022 amazonlinux pcp-pmda-nginx.x86_64 5.3.5-1.amzn2022 amazonlinux
最後に
Amazon Linux 2022の起動と簡単な比較をしてみました。パブリックプレビュー版ですので追加要望の有無やバグがないか引き続き確認できればと思います。Amazon Linux 2のサポートが2023/6/30まででしたので、待ちに待ち望んだアップデートです。今後のバージョンアップのロードマップも分かって一安心です。GAが待ち遠しいですね!